package com.example.demo.utils;

import java.io.*;

public class MySerializableClass<T> implements Serializable {
    // 进行序列化
    public static<T> void toSerializ(T obj,String filePath){
        try {
            // 打开序列化文件，不存在则创建
            FileOutputStream fileOut = new FileOutputStream(filePath);
            // 获取序列化输出流对象
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            // 将序列化数据写入文件
            out.writeObject(obj);

            out.close();
            fileOut.close();
        }catch (IOException e)
        {
            e.printStackTrace();
        }
    }

    // 进行反序列化
    public static<T> T deserialization(String filePath){
        T obj = null;

        try {
            // 打开反序列化文件
            FileInputStream fileIn = new FileInputStream(filePath);
            ObjectInputStream in = new ObjectInputStream(fileIn);
            // 获取反序列化数据
            obj = (T) in.readObject();

            in.close();
            fileIn.close();
        }catch (IOException e){
            e.printStackTrace();
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
        return obj;
    }

}
